Fantacalcio, che passione!

Il Fantacalcio è stato definito come “il gioco più bello del mondo dopo il calcio”. Per svariate persone questa affermazione potrebbe essere un’assurdità, qualcosa di totalmente illogico, ma qualcuno che ama il calcio potrebbe apprezzarla e comprenderla. Io rientro tra coloro che condividono quella frase. Ma che cos’è di preciso il Fantacalcio? Si tratta del più popolare fantasy game sul calcio, giocato da milioni di persone. Fu stato inventato da Riccardo Albini, giornalista italiano, nel 1988 e raggiunse la popolarità in tutta Italia nel 1994 grazie alla collaborazione con La Gazzetta dello Sport. Da quel momento infatti il quotidiano sportivo accolse il gioco sulle sue pagine, fornendo le votazioni (di giornata in giornata) per calcolare i punteggi delle squadre di calcio viruali (chiamate fantasquadre). L’iniziativa raccolse molto successo, in quanto ci si aspettavano circa 10.000 partecipanti, ma nel corso dell’anno si raggiunsero 70.000 iscritti.

L’obiettivo di questo gioco è quello di comporre una fantasquadra formata da 25 giocatori reali scelti tra le squadre di serie A, di gestirla e di schierarla in campo durante le varie giornate del campionato per cercare di conquistare il fantascudetto di Lega. Terminata ogni giornata la fantasquadra otterrà un punteggio che è dato dalla somma algebrica dei punteggi dei singoli giocatori. I calciatori che portano punti alla fantaquadra sono solo i titolari che hanno ottenuto punteggio ai fini del gioco e gli eventuali calciatori della panchina che hanno sostituito coloro, tra i titolari, che non hanno ricevuto punteggio. Però, ciò che più conta è capire come viene determinato il punteggio di ogni giocatore (detto fanta voto); questo dipende dal voto pubblicato sulla Gazzetta dello Sport al quale possono sommarsi dei bonus e sottrarsi dei malus.

In questa analisi il mio obiettivo è scoprire più nel dettaglio questo gioco; l’analisi prende in considerazione gli ultimi 7 campionati di serie A, partendo quindi dalla stagione 2011/2012 e arrivando alla stagione 2017/2018, anno in cui la Juventus è riuscita a conquistare il suo settimo scudetto consecutivo. In particolare, le domande a cui vorrei dare una risposta, dopo aver fatto un’analisi esplorativa sui dati raccolti, sono le seguenti:

Dataset utilizzati

Per questa analisi sono stati utilizzati 3 dataset, costruiti grazie a dati ricavati da 3 diversi siti internet, i quali fornivano informazioni suddivise in base agli anni.

Dataset giocatori

Questa tabella è composta da 3676 righe, le quali restituiscono informazioni sulle statistiche del fantacalcio, dei 7 anni presi in considerazione divise per ruolo, di tutti i giocatori della Serie A con almeno una presenza. Quindi se si fissa l’attenzione su un singolo anno, nella tabella ci saranno tutti i giocatori che hanno collezionato almeno una presenza. Le variabili sono le seguenti:

  • ruolo: ruolo del giocatore. Si tratta di una variabile qualitativa i cui valori possibili sono A=attaccante, C=centrocampista, D=difensore, P= portiere.
  • giocatore: cognome e nome di un giocaore con almeno una presenza nell’anno considerato.
  • squadra: squadra di un giocatore in un certo anno. Se un giocatore nel mercato invernale si trasferisce in una squadra (sempre di serie A) allora la squadra associata a quel calciatore sarà quella in cui si è trasferito.
  • anno: stagione calcistica. Esempio: l’anno 2017 rappresenta la stagione calcistica 2017/2018, l’anno 2016 rappresenta la stagione calcistica 2016/2017 fino ad arrivare all’anno 2011 che rappresenta la stagione 2011/2012. In questo modo la colonna sarà di tipo intero.
  • P: indica le presenze di quel giocatore in una stagione. Tiene conto anche di chi non è partito titolare ma è sub entrato a qualcun’altro. Tiene conto anche delle presenze di chi all’inizio del campionato era in una certa squadra ma nel mercato invernale ha subito un trasferimento. Se il trasferimento è avvenuto in una squadra sempre di serie A allora le presenze tengono conto delle presenze nelle due squadre, se invece il trasferimento è in una squadra di un’altro campionato allora le presenze si fermano a quelle avvenute con la squadra di serie A.
  • MV: rappresenta la media del voto di un singolo giocatore, calcolata sui vari voti ricevuti da quel giocatore durante le sue presenze, in un certo anno. I singoli voti sono quelli pubblicati sulla Gazzetta dello Sport e dipendono dalla prestazione del giocatore in una partita.
  • FMV: rappresenta il fanta media voto, calcolato sui vari fanta voti ricevuti da un determinato giocatore durante le sue presenze, in una stagione. Il fanta voto ricevuto da un giocatore dipende dal voto pubblicato sul quotidiano sportivo e da bonus o malus. I bonus/malus adottati dal sito in cui i dati sono stati scaricati sono:
BONUS PUNTI
Per ogni gol segnato da un attaccante 3
Per ogni gol segnato da un centrocampista 4
Per ogni gol segnato da un difensore 4,5
Per ogni assist effettuato 1
Per ogni rigore parato 3
MALUS PUNTI
Per ogni ammonizione - 0,5
Per ogni espulsione - 1
Per ogni autogol - 2
Per ogni rigore sbagliato - 3
Per ogni goal subito dal portiere - 1
  • G: totale goal segnati da un giocatore in un certo anno. Sono contenuti anche i rigori segnati.
  • A: totale assist effettuati da un giocatore in un anno.
  • AM: totale ammonizion di un giocatore in un anno.
  • ES: totale espulsioni di un giocatore in un anno.
  • AU: totale autogol di un giocatore in un anno.
  • GS: totale goal subiti, questa variabile riguarda solo i giocatori con il ruolo di portieri. Per gli altri ruoli la variabili assumerà valore 0.
  • RS: totale rigori sbagliati da un giocatore in un anno.
  • RP: totale rigori parati, questa variabile riguarda solo i giocatori con il ruolo di portieri. Per gli altri ruoli questa variabile assumerà valore 0.

Dataset valutazioni

Questo dataset contiene le valutazioni iniziali di ogni singolo giocatore pubblicate sul sito della Gazzetta dello Sport, verso fine agosto. In questo dataset sono contenute anche le valutazioni di giocatori che poi, durante una certa stagione, non hanno collezionato presenze. Di seguito si analizzano le variabili contenute:

  • anno: anno in cui viene pubblicata una certa valutazione. Esempio: anno 2017 riguarda valutazioni iniziali di giocatori per la stagione 2017/2018.
  • giocatore: cognome e nome di un giocatore che, all’inizio della stagione, fa parte della rosa di una squadra di serie A. Sono quindi contenuti anche i giocatori che nel mercato invernale si sono poi trasferiti ad un altro campionato.
  • valutazione: valutazione iniziale di ogni singolo giocatore per una stagione, pubblicata sulla Gazzetta dello Sport

La valutazione di un giocatore può subire variazioni durante il corso delle partie, in base al rendimento, ma ciò che conta per questa analisi è solamente la valutazione iniziale.

Dataset squadre

Questo dataset contiene informazioni sulle squadre di serie A delle ultime 7 stagioni. Le variabili sono le seguenti:

  • anno: stagione calcistica. Esempio: l’anno 2017 rappresenta la stagione calcistica 2017/2018 (come per la variabile anno della tabella giocatori)
  • squadra: squadra che fa parte del campionato di serie A in un determinato anno.
  • giocate: partite disputate da una squadra in una stagione. Il valore di questa variaible è lo stesso per tutte le squadre e quindi non servirà per l’analisi.
  • punti: punteggio finale ottenuto dalla squadra in un anno.
  • vittore: vittorie totali della squadra in un anno.
  • pareggi: pareggi della squadra in un anno.
  • sconfitte: sconfitte della squadra in un anno.
  • GF: totale goal fatti della squadra in un anno.
  • GS: totale goal subiti della squadra in un anno.
  • VC: vittorie in casa della squadra in un anno.
  • PC: pareggi in casa della squadra in un anno.
  • SC: sconfitte in casa della squadra in un anno.
  • GF_CASA: totale goal fatti in casa della squadra in un anno.
  • GS_CASA: totale goal subiti in cas della squadra in un anno.
  • VT: vittorie in trasferta della squadra in un anno.
  • PT: pareggi in trasferta della squadra in un anno.
  • ST: sconfitte in trasferta della squadra in un anno.
  • GF_TRASF: totale goal fatti in trasferta della squadra in un anno.
  • GS_TRASF: totale goal subiti in trasferta della squadra in un anno.

Ci sono alcune variabili in questo dataset che non sono necessarie, ovvero le variabili giocate, vittorie, pareggi, sconfitte, GF e GS siccome per l’analisi voglio concentrarmi sulla distinzione tra partite in casa e partite in trasferta; nel seguito quindi verranno eliminate.

Schema concettuale e relazionale

Prima di partire con l’analisi del dataset, una cosa importante è capire lo schema concettuale e lo schema relazionale dei dati siccome quest’ultimo sarà utile durante le operazioni di join. Partendo dallo schema concettuale possiamo quindi dire che sono presenti 3 entità :

  • GIOCATORI con chiave primaria formata da anno e giocatore;
  • VALUTAZIONI identificata da anno e giocatore;
  • SQUADRE identificata da anno e squadra.

C’è una relazione di tipo 1:1 tra giocatori e valutazioni, in quanto un’istanza dell’entità giocatori più essere associata ad un’istanza dell’entità valutazioni e vale il viceversa (ricordando però che istanze dell’entità valutazioni potrebbero non trovare una corrispondenza tra le istanze dell’altra entità); c’è inoltre una relazione di tipo 1:molti tra giocatori e squadre. Passando allo schema relazionale, le tre entità del modello concettuale vengono tradotte in tabelle (la cui struttura è stata già analizzata); per quanto riguarda le relazioni, se vogliamo far parlare tra di loro le tabelle giocatori e valutazioni allora bisognerà inserire la relazione nella tabella giocatori (siccome per l’analisi si considerano solo giocatori con almeno una presenza e quindi con almeno 1 voto), così come per la relazione di tipo 1:molti dove la chiave esterna formata da squadra e anno della tabella giocatori corrisponderà alla chiave primaria (formata da squadra e anno) della tabella squadre.

Library

Di seguito l’elenco dei pacchetti che saranno necessari per lo scolgimento delle analisi:

Importazione dei dati

I dati si trovano in formato .csv, quindi la prima cosa che bisogna fare è importarli, sfruttando il pacchetto readr di tidyverse.

Formato tidy dei dati e verifica vincoli di integrità

I dati non hanno bisogno di particolari aggiustamenti siccome sono già in forma normale ordinata, ovvero i tre vincoli sono soddisfatti:

  • Le variabili sono le colonne della tabella
  • Le osservazioni sono le righe della tabella
  • I valori sono le celle della tabella

Prima di partire con l’analisi però bisogna controllare che i vincoli di chiave primaria e i vincoli di chiave esterna siano soddisfatti. Siccome nella tabella giocatori e nella tabella squadre ci sono due variabili che hanno lo steso nome (GS) ma vogliono dire cose diverse (in quanto il dato presente nella tabella squadre è un dato aggregato sui goal subiti dalla squadra), come prima cosa si procede cambiando il nome della variabile GS della tabella giocatori rinominandola con GSUB.

## # A tibble: 0 x 3
## # ... with 3 variables: giocatore <chr>, anno <int>, n <int>
## # A tibble: 0 x 3
## # ... with 3 variables: giocatore <chr>, anno <int>, n <int>
## # A tibble: 0 x 3
## # ... with 3 variables: squadra <chr>, anno <int>, n <int>
## # A tibble: 0 x 3
## # ... with 3 variables: anno <int>, giocatore <chr>, n <int>
## # A tibble: 0 x 3
## # ... with 3 variables: anno <int>, squadra <chr>, n <int>

Ora che i vincoli sono stati verificati, si procede ordinando i dataset e, per quanto riguarda la tabella squadre, si vanno ad eliminare alcune variabili in modo da focalizzare l’attenzione su partite in casa e partite in trasferta. Inoltre, sempre nella tabella squadre, si aggiungono due colonne DR_CASA e DR_TRASF che sono rispettivamente la differenza tra i goal fatti e i goal subiti in casa e in trasferta.

Analisi sulla tabella giocatori

Una volta che le tabelle sono state sistemate, una cosa molto importante da fare è un’analisi esplorativa per capire struttura e variazioni delle singole variabili e inoltre cercare di scoprire se esistono delle relazioni tra le variaibli. Concentriamoci sulla tabella giocatori.

## # A tibble: 1,510 x 2
##    giocatore                n
##    <chr>                <int>
##  1 AARONS Rolando           1
##  2 ABATE Ignazio            7
##  3 ABBIATI Christian        5
##  4 ABBRUSCATO Elvis         1
##  5 ABDI Almen               1
##  6 ABERO Mathias            1
##  7 ACERBI Francesco         7
##  8 ACOSTY Boadu Maxwell     2
##  9 ACQUAFRESCA Robert       4
## 10 ACQUAH Afriyie           7
## # ... with 1,500 more rows

In questa tabella ci sono 3676 righe, che forniscono informazioni sui giocatori. Fissata la finestra di osservazione di 7 anni, un singolo giocatore può aver giocato in serie A in più di una stagione. Il numero di giocatori distinti sono 1510. Vediamo le correlazioni tra le variabili, usando la visualizzazione della matrice di correlazione:

Da questa visualizazzione si nota come la variabile FMV sia fortemente correlata con la variabile GOAL, tutto ciò non è una scoperta siccome, in caso di goal, il gicoatore ottiene un bonus molto alto, pari a 3, 4 o 4.5 punti a seconda che sia attaccante, centrocampista o difensore. Tutto ciò si può vedere molto meglio tramite uno scatter plot in cui vengono inseriti anche i ruoli dei giocatori:

Attribuendo al colore dei punti la variabile ruolo sembra che coloro che segnano di più sono attaccanti e sono quindi questi che possono avere un FMV alto. Per vedere se ciò è vero, visualizziamo il tutto tramite un boxplot:

Dal boxplot si vede come la mediana degli attaccanti sia superiore a quella dei centrocampisti e si nota anche che gli attaccati possono raggiungere valori di goal molto alti. Un’altra variaible che, dalla matrice di correlazione, risulta essere correlata con il FMV sono il numero di assist effettuati.

Anche qui si vede come all’aumentare del numero di assist aumenta anche il FMV. Per capire la distribuzione degli assist in base al ruolo del giocatore è utile anche qui un boxplot:

Il risultato è il 75% della variabilità degli assist è uguale per attaccanti e centrocampisti, ma i centrocampisti possono effettuare più assist.

Ma quindi il FMV dipende dal ruolo?

Mettendo assieme i risultati ottenuti si va a vedere qual è il ruolo che ottiene un FMV più alto, considerando quindi tutti i fattori che possono incidere sul FMV:

Complessivamente quindi, gli attaccanti hanno una mediana del FMV superiore ai centrocampisti. Dallle analisi svolte si può quindi concluedere che esiste una dipendenza del FMV dal ruolo.

Quali altre variabili sono fortemente correlate al FMV?

Si è visto come il FMV sia molto legato ai goal e agli assist, si procede ora andando a capire se ci sono altre variabili che incidono su questo. Si parte col vedere se all’aumentare delle presenze aumenta il FMV.

## [1] 0.1219456

Da questo grafico si nota una nuvola di punti senza particolari trend. Andando a creare un modello che spiega il FMV tramite la variabile P e determinando l’R-quadro si conclude dicendo che non c’è¨ associazione tra le due variabili. In generale si dovrebbe considerare il FMV solo per quei giocatori con un numero abbastanza grande di presenze, queste perchè un giocatore con una sola presenza (che quindi ha giocato benissimo in quella partita) potrebbe avere il FMV più alto di uno che ha giocato tantissime partite; inoltre per il fantcalcio sono necessari giocatori in grado di garantire nmerose presenze. Nel proseguo dell’analisi quindi il FMV dovrà essere pesato con pesi, appunto, le presenze.

Ma c’è un’altra variabile che è molto correlata, ed è il MV. Infatti il punto di partenza per la determinazione del FMV è proprio il voto dato dalla Gazzetta dello Sport.

## [1] 0.5637766

Nel complesso la correlazione non è molto alta, questo perchè per i giocatori con il ruolo di portieri il FMV è molto più basso, ad ogni goal subito viene tolto un punto e quindi per i portieri è molto più difficile avere un FMV alto (anche dalla matrice di correlazione si notava una correlazione inversa tra FMV e GSUB). Per gli altri ruoli si nota un trend lineare.

Le variabili maggiormente correlate con il FMV sono quindi: ruolo, goal, assist, goal subiti e MV. Costruiamo quindi un modello che spiega il FMV attraverso le variabili appena menzionate:

## 
## Call:
## lm(formula = FMV ~ MV + ruolo + G + A + GSUB, data = giocatori)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.7224 -0.1200 -0.0276  0.0890  2.9077 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -2.7196372  0.1132895 -24.006  < 2e-16 ***
## MV           1.2433473  0.0182699  68.055  < 2e-16 ***
## ruoloD       1.2731116  0.0282223  45.110  < 2e-16 ***
## ruoloC       1.3159712  0.0282940  46.511  < 2e-16 ***
## ruoloA       1.4699671  0.0304953  48.203  < 2e-16 ***
## G            0.0787874  0.0019354  40.709  < 2e-16 ***
## A            0.0126627  0.0036582   3.461 0.000543 ***
## GSUB        -0.0036172  0.0009019  -4.011 6.17e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2948 on 3666 degrees of freedom
## Multiple R-squared:  0.8413, Adjusted R-squared:  0.841 
## F-statistic:  2776 on 7 and 3666 DF,  p-value: < 2.2e-16

Queste variabili spiegano dunque l’84% della variabilità del FMV.

Migliori giocatori

Si vuole ora vedere di ogni stagione, i 5 migliori giocatori (quelli con FMV maggiore) filtrando quelli con più di 10 presenze. In un grafico si visualizzano sull’asse delle x i Goal e sull’asse delle y il relativo FMV, dove pallini con dimensione maggiore indicano un maggior numero di assist effettuati:

Si considera ora solo l’utima stagione e si va a guardare chi ha ottenuto un FMV maggiore di 7.5 con più di 15 presenze. Il grafico mostra i goal e la dimensione rappresenta il numero di assist effettuati.

Quindi per la rosa di quest’anno, vedendo i risultati verrebbe da prenderne alcuni di questi (sono ancora tutti in serie A). Però ogni stagione è diversa, non è detto che, se hanno ottenuto un buon FMV l’anno scorso la ottengano anche quest’anno.

Esiste una correlazione tra valutazione iniziale e FMV?

Per vedere tutto questo occorre far parlare le due tabelle, dobbiamo fare un inner_join in modo che tutti i valori della tabella giocatore trovino una corrispondenza nella tabella valutazioni.

Dando una rapida occhiata ai grafici sembrerebbe che il FMV sia correlato con la valutazione. Costruiamo un modello e andiamo a vedere quanta variabilità del FMV è spiegata dalla variabile valutazione:

## 
## Call:
## lm(formula = FMV ~ P, data = giocatori)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.0176 -0.3249 -0.0367  0.3333  3.9824 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 5.494014   0.022358  245.73   <2e-16 ***
## P           0.023635   0.001047   22.58   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6929 on 3672 degrees of freedom
## Multiple R-squared:  0.1219, Adjusted R-squared:  0.1217 
## F-statistic:   510 on 1 and 3672 DF,  p-value: < 2.2e-16

Il grafico dei residui fa capire che la variabile esplicativa non ha colto, per la maggior parte, la variabilità della varaibile risposta. Da tutto ciò si deduce che non bisogna basarsi solo sulle valutazioni iniziali pubblicate nel quotidiano sportivo.

Come si evolve il FMV delle squadre nel tempo?

La tabella squadre contiene informazioni sulle squadre degli ultimi 7 campionati di serie A. Ci sono delle squadre che non sono presenti in tutte le stagioni, quindi per questa analisi si considerano solo le squadre che sono presenti in tutti gli anni considerati, che sono le seguenti:

## # A tibble: 11 x 1
##    squadra   
##    <chr>     
##  1 ATALANTA  
##  2 CHIEVO    
##  3 FIORENTINA
##  4 GENOA     
##  5 INTER     
##  6 JUVENTUS  
##  7 LAZIO     
##  8 MILAN     
##  9 NAPOLI    
## 10 ROMA      
## 11 UDINESE

Ci sono 11 squadre, per fare l’analisi se il FMV aumenta nel tempo consideremo solo queste. Si salva il risultao in una variabile squadre7.

Facciamo un join tra la tabella giocatori e la tabella squadre7 in modo da avere solo i giocatori di queste 11 squadre:

Per vedere l’evoluzione del FMV delle squadre nel tempo quello che occorre è, per i diversi anni, il fanta media voto di ogni squadra, dato dai FMV dei suoi giocatori. Per fare questo creiamo una variabile media che contiene appunto questo dato; si tratta di una media pesata con pesi le presenze (questo perchè vogliamo dare più peso a chi ha disputato più partite):

Partiamo con un grafico che mostra l’andamento delle squadre:

Nonostante ci siano solamente 11 squadre diventa comunque difficile capire quale sia il reale andamento. Si prova a selezionare solo una squadra, la Juventus:

Per capire il trend delle diverse squadre bisognerebbe generare 11 modelli diversi, che renderebbe lungo il procedimento; tramite il dataframe annidato risolviamo questo problema.

La tabella by_giocatori è formata da una colonna data che contiene per ogni squadra la lista degli anni e delle corrispondenti medie, possiamo quindi accedere agli elementi della lista; ad esempio accediamo all’ elemento che è la squadra JUVENTUS:

## # A tibble: 7 x 2
##    anno media
##   <int> <dbl>
## 1  2011  6.50
## 2  2012  6.43
## 3  2013  6.65
## 4  2014  6.50
## 5  2015  6.58
## 6  2016  6.51
## 7  2017  6.70

Creiamo la funzione di adattamento del modello:

Vogliamo applicare questa funzione ad ogni data frame, ma questi sono contenuti in una lista. Si utilizza allora purrr::map() per applicare questo modello ad ogni elemento. Creiamo una nuova variabile nel data frame by_giocatore con mutate():

Ora ci sono quindi 11 data frame e 11 modelli. Per aggiungere i residui bisogna chiamare la funzione add_residuals() per ogni coppia di modelli e dati usando la funzione map2().

Ora che abbiamo tutto quello che serve si vogliono produrre dei grafici. Ma c’è una lista di data frame che non possono essere graficati, allora si utilizza la funzione unnest() per passare da data frame annidato a data frame e si visualizzano i residui:

## # A tibble: 77 x 4
##    squadra   anno media   resid
##    <chr>    <int> <dbl>   <dbl>
##  1 ATALANTA  2011  6.17  0.253 
##  2 ATALANTA  2012  5.89 -0.106 
##  3 ATALANTA  2013  6.03 -0.0349
##  4 ATALANTA  2014  5.92 -0.227 
##  5 ATALANTA  2015  6.05 -0.172 
##  6 ATALANTA  2016  6.47  0.176 
##  7 ATALANTA  2017  6.48  0.110 
##  8 CHIEVO    2011  5.97  0.0780
##  9 CHIEVO    2012  5.89 -0.0209
## 10 CHIEVO    2013  5.77 -0.154 
## # ... with 67 more rows

Andiamo a vedere alcuni indicatori statistici con la funzione glance() del pacchetto broom:

Ordiniamo in ordine descrescente della variabile r.squared e creiamo una variabile che tenga conto solo delle squadre con r.squared>0.3:

## # A tibble: 11 x 12
##    squadra r.squared adj.r.squared  sigma statistic p.value    df logLik
##    <chr>       <dbl>         <dbl>  <dbl>     <dbl>   <dbl> <int>  <dbl>
##  1 INTER     7.00e-1       0.640   0.0879   1.17e+1  0.0189     2   8.26
##  2 UDINESE   5.03e-1       0.403   0.129    5.05e+0  0.0745     2   5.58
##  3 NAPOLI    4.77e-1       0.373   0.190    4.57e+0  0.0856     2   2.86
##  4 ATALAN~   4.48e-1       0.337   0.200    4.05e+0  0.100      2   2.50
##  5 LAZIO     3.99e-1       0.279   0.211    3.32e+0  0.128      2   2.12
##  6 JUVENT~   3.33e-1       0.200   0.0839   2.50e+0  0.175      2   8.59
##  7 ROMA      2.53e-1       0.103   0.206    1.69e+0  0.250      2   2.30
##  8 GENOA     1.93e-1       0.0319  0.140    1.20e+0  0.324      2   5.02
##  9 CHIEVO    1.70e-1       0.00440 0.0906   1.03e+0  0.357      2   8.06
## 10 MILAN     1.13e-1      -0.0639  0.164    6.40e-1  0.460      2   3.89
## 11 FIOREN~   5.65e-6      -0.200   0.183    2.83e-5  0.996      2   3.12
## # ... with 4 more variables: AIC <dbl>, BIC <dbl>, deviance <dbl>,
## #   df.residual <int>

Le squadre che in questi anni hanno avuto un miglioramente nel fanta media voto aggregato quindi l’Inter e l’Udinese e il Napoli. Per tutte le altre squadre abbiamo un r quadro non molto alto, con oscillazoni di anno in anno del fanta media voto.

All’aumentare del FMV aggregato aumenta il punteggio della squadra?

Come nel caso precedente, andiamo a creare il FMV aggregato di ogni squadra nei diversi anni (è una media pesata con pesi le presenze dei giocatori):

Dal grafico si vede come, nei diversi anni, le squadre che hanno avuto un fanta media voto aggregato più alto sono quelle che hanno raggiunto posizioni alte in classifica. Costruiamo un modello lineare semplice:

## 
## Call:
## lm(formula = punti ~ FantaMediaVoto, data = relazione)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -18.363  -4.578  -0.490   4.815  13.982 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -343.693     13.790  -24.92   <2e-16 ***
## FantaMediaVoto   65.085      2.266   28.72   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.729 on 138 degrees of freedom
## Multiple R-squared:  0.8567, Adjusted R-squared:  0.8557 
## F-statistic: 825.1 on 1 and 138 DF,  p-value: < 2.2e-16

Quasi l’86% del punteggio finale di una squadra è spiegato attraverso il FMV aggregato dei giocatori che compongono quella squadra.

Il grafico dei residui non mostra particolari andamenti, questo vuol dire che il modello è buono.

Concentriamoci solo sulla stagione 2017/2018

Le squadre che hanno ottenuto un FMV alto (JUVENTUS e NAPOLI) sono quelle che sono arrivate rispettivamente prime e seconde in campionato.

C’è un vantaggio per le squadre a giocare in casa?

Si va a guardare ora la tabella relazione per vedere eventuali associazioni tra le variabili:

Da questa tabella capiamo come la variabile punti, oltre ad essere fortemente legata al FMV, è correlata positivamente con i goal fatti (in casa e in trasferta) ed è correlata negativamente con i goal subiti (in casa e in trasferta). Ma quello che si vuole capire è se esiste un vantaggio a giocare in casa.

Da questa visualizzazione si può capire come ci sia un notevole vantaggio a giocare in casa.

Anche da questo grafico si nota come le squadre, generalmente, abbiano un beneficio a giocare in casa.

Da questa visualizzazione si può vedere come, gicando in casa, si facciano più goal e se ne subiscono.

Come può essere spiegata la forza della Juventus?

Nelle ultime 7 stagioni la Juventus è riuscita ad arrivare sempre prima. Di seguito un’analisi generale tenendo conto di tutti questi anni:

## # A tibble: 11 x 5
##    squadra    TotGoalCasa TotVittCasa TotVittTrasf   FMV
##    <chr>            <int>       <int>        <int> <dbl>
##  1 JUVENTUS           298         112           85  6.55
##  2 NAPOLI             308          91           68  6.43
##  3 ROMA               279          85           68  6.38
##  4 LAZIO              252          76           53  6.22
##  5 INTER              236          68           53  6.18
##  6 FIORENTINA         225          67           52  6.16
##  7 ATALANTA           180          59           35  6.15
##  8 MILAN              212          76           49  6.10
##  9 UDINESE            189          59           33  6.05
## 10 GENOA              186          53           26  6.00
## 11 CHIEVO             141          44           35  5.95

La potenza di questa squadra può essere brevemente spiegata dicendo che, in queste ultime 7 stagioni, è la squadra con più goal fatti in casa, con più vittorie in casa ed è inoltre la squadra che è riuscita a fare più vittorie in trasferta e quella con il fanta media voto (media degli ultimi 7 anni) più alto. Graficamente la situazione è la seguente:

Consigli finali

In conclusione, questa analisi in cosa ci può essere di aiuto nel caso decidessimo di partecipare al Fantacalcio? Abbiamo capito diverse cose; inanzitutto non bisogna basarsi solo sulla valutazione iniziale per decidere i giocatori da prendere, quindi la strategia “compro i giocatori che hanno una valutazione più alta” è da rivedere. Questo perchè a valutazioni basse potrebbero corrispondere alti FMV a fine anno (giocatori che disputano una stagione sopra le aspettative) o, al contrario, a valutazioni alte corrispondono FMV bassi (giocatori sopravvalutati ad inizio anno, perchè magari hanno disputato un’ottima stagione in precedenza, non confermano le aspettative). Tra i bonus/malus, quelli che sono maggiormente correlati con il FMV sono:

  • Goal e assist: coloro che segnano di più sono gli attaccanti e coloro che effettuano più assist sono sia attaccanti che centrocampisti.

  • Goal subiti dal portiere: i portieri raggiungono difficilmente un FMV elevato, questo perchè sono soggetti a più malus che bonus, scegliere ad inizio anno il portiere che subirà meno goal non è affatto facile.

Bisogna scegliere alcuni attaccanti o centrocampisti che, basandosi sulla stagione passata o al limite sulle ultime due stagioni, hanno avuto un fanta media voto alto. Però bisogna anche rischiare, scommettere su alcuni giocatori promettenti (la cui valutazione iniziale è bassa ma portebbero fare un ottimo campionato). Un altro consiglio potrebbe essere quello di prendere giocatori della squadra che negli ultimi anni si è posizionata bene in classifica. Consigli su chi schierare di giornata in giornata: c’è una maggior probabilità per le squadre di vincere in casa (la squadra che vince ovviamente segnerà almeno 1 goal) quindi se ci sono centrocampisti o attaccanti che giocano in casa conviene schierarli in campo. Detta così sembrerebbe davvero semplice, ma non lo è affatto. A tutto questo concorrono moltissime variabili non prevedibili a priori come ad esempio il calo di forma, il rapporto tra il calciatore e l’allenatore, eventuali infortuni, solo per elencarne alcune. Non c’è nulla di certo, in fondo prendere alcuni giocatori piuttosto che altri potrebbe essere vista come una scommessa, dove quindi ci vuole sempre un pizzico di fortuna!